/*指针*/
/*
内存会被划分为一个个的内存单元（一个内存单元的大小：1byte）
每个内存单元都有一个编号
内存单元
编号->地址->地址也被称为指针
存放指针（地址）的变量就是指针变量

int * p = &a;
int：说明p指向的对象是int类型的
*：说明P是指针变量

在指针变量眼里，什么都是地址
*/
#include <stdio.h>
/*
int main(){
    int a = 10;
    printf("%p\n",&a);
    int b = 9;
    printf("%p\n",&b);

    return 0;
}
*/
/*
int main()
{
    int a = 10;
    &a;

    //P就是指针变量
    int* p = &a;

    char ch = 'w';
    char* pc = &ch;

    *p = 20;    //解引用操作符，意思就是通过p中存放的地址，找到p所指的对象，*p就是p所指向的对象
    *pc = 'g';

    printf("%d\n",a);
    printf("%c\n",ch);

    return 0;
}
*/


int main()
{
    //sizeof的返回值最好用%zu来表示
    printf("%zu\n",sizeof(char*));  //不管是什么类型的指针，都是在创建指针变量
    printf("%zu\n",sizeof(int*));   //指针变量是用来存放地址的
    printf("%zu\n",sizeof(short*)); //指针变量的大小取决于一个地址存放的时候需要的空间大小
    printf("%zu\n",sizeof(float*)); //32位机器上的地址：32bit位 - 4byte，所以指针变量的大小是4个字节
    printf("%zu\n",sizeof(double*));//64位机器上的地址：64bit位 - 8byte，所以指针变量的大小是8个字节
    return 0;
}
    